// 1.安装mongoose
// 2.导入mongoose
const mongoose = require('mongoose');

//3.连接mongodb服务                          数据库名称
mongoose.connect('mongodb://127.0.0.1:27017/bilibili');

// 4.设置回调 once：一次  事件回调函数只执行一次
mongoose.connection.once('open', () => {
  console.log('连接成功');
  // 5. 创建文档的结构对象
  // 设置集合中文档的属性以及属性值的类型
  let BookSchema = mongoose.Schema({
    name: String,
    author: String,
    price: Number,
  });
  // 6. 创建模型对象 对文档操作的封装对象 参数一:集合名称 参数二: 结构对象
  let BookModel = mongoose.model('books', BookSchema);

  // 7.新增
  BookModel.create({
    name: '西游记',
    author: '吴承恩',
    price: 100
  }).then((data) => {
    // 如果没出错，则输出插入后的文档对象
    console.log(data);
  }).catch((err) => {
    console.log(err);
  }).finally(() => {
    // 8.关闭数据库
    mongoose.disconnect();
  });
}); // 设置连接成功的回调


mongoose.connection.on('error', () => {
  console.log('连接失败');
}); // 设置连接错误的回调


mongoose.connection.on('close', () => {
  console.log('连接关闭');
}); // 设置连接关闭的回调

